Variablen und Felder sind die dynamischen Textblöcke für Berichte und enthalten den dynamischen Teil der Daten. Variablen ändern sich typischerweise einmal pro Seite oder Bericht – ein Beispiel sind die Kopfdaten einer Rechnung mit Rechnungsnummer und Adressat. Felder hingegen ändern sich in der Regel für jeden Datensatz, typische Vertreter sind also z.B. die Postendaten einer Rechnung.
Im Designer werden Variablen stets außerhalb, Felder nur innerhalb des Berichtscontainers (des "Tabellenbereichs") angeboten und können auch nur dort verwendet werden. Die Trennung dient vor allem dazu, dem Endanwender das Leben leichter zu machen – wenn er ein Feld in den "Außenbereich" platzieren würde, wäre das Ergebnis je nach Druckreihenfolge entweder der Inhalt des Ersten oder Letzten Datensatzes.
Für beide Baustein-Typen gilt, dass sie hierarchisch angeordnet werden können – im Designer macht sich dies durch eine Ordnerstruktur bemerkbar. Die Datenbank-Tabellennamen werden von der Datenbindung automatisch berücksichtigt, so dass alle Daten der "Bestelldaten"-Tabelle in einem Ordner "Bestelldaten" dargestellt werden.
Eigene Daten können ebenfalls hierarchisch angeordnet werden, indem ein Punkt als Hierarchietrenner verwendet wird (also z.B. "Zusatzdaten.Benutzername").
Wenn in einer 1:n hierarchisch verknüpften Datenstruktur wie z.B. "Rechnungskopf" und "Rechnungsposten" die Bestelldaten-Tabelle als Variablen, die Bestellposten hingegen als Felder angemeldet werden sollen, kann dies über die Eigenschaften DataMember und AutoMasterMode der Komponente erreicht werden:
Zur Druckzeit wird in diesem Falle automatisch ein Seriendruck generiert, wenn also z.B. ein Rechnungsformular designed wurde, wird für jeden Datensatz aus der Rechnungskopf-Tabelle eine eigene Rechnung mit eigener Seitennummerierung, Summierung etc. erzeugt.
Auswirkung der Option AutoMasterMode. Links: "AsVariables", rechts "AsFields".
Variablen und Felder werden typisiert übergeben, d.h. je nach Inhalt in der Datenbank als Text, Zahl etc. Dies besorgt die Datenbindung in der Regel automatisch, eine explizite Übergabe des Typs ist nur dann notwendig, wenn zusätzlich eigene Daten übergeben werden (siehe auch Zusätzliche Inhalte übergeben). Auch dann wird meist schon der passende Datentyp vorgewählt (z.B. bei Übergabe von DateTime-Objekten).
Die folgende Tabelle zeigt die wichtigsten Datentypen:
Datentyp | Verwendung |
LlFieldType.Text | Text. |
LlFieldType.RTF | RTF-formatierter Text. Dieser Feldtyp kann im Designer direkt in einem RTF-Feld bzw. RTF-Objekt verwendet werden. |
LlFieldType.Numeric LlFieldType.Numeric_Integer |
Zahl. Die Datenbindung unterscheidet automatisch zwischen Gleitkommazahlen und Integer-Werten. |
LlFieldType.Boolean | Logische Werte. |
LlFieldType.Date | Datums- und Zeitwerte (DateTime). |
LlFieldType.Drawing | Grafik. In der Regel wird der Dateiname angegeben, für Bitmaps und EMF-Dateien ist auch eine direkte Übergabe des Speicherhandles möglich. Die Datenbindung untersucht automatisch Byte[]-Felder auf Ihren Inhalt und meldet diese als Grafik an, wenn sich ein passendes Format findet. |
LlFieldType.Barcode | Barcode. Barcodes können am einfachsten als Instanzen der LlBarcode-Klasse direkt in den Add-Methoden der Variables- und Fields-Eigenschaft übergeben werden. |
LlFieldType.HTML | HTML. Der Inhalt der Variablen ist ein gültiger HTML-Stream, ein Dateiname oder eine URL. |